home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / bbs_util / bsrc_260.zip / INCLUDE.ZIP / COM_NT.H < prev    next >
C/C++ Source or Header  |  1996-03-27  |  13KB  |  326 lines

  1. /*--------------------------------------------------------------------------*/
  2. /*                                                                          */
  3. /*                                                                          */
  4. /*      ------------         Bit-Bucket Software, Co.                       */
  5. /*      \ 10001101 /         Writers and Distributors of                    */
  6. /*       \ 011110 /          Freely Available<tm> Software.                 */
  7. /*        \ 1011 /                                                          */
  8. /*         ------                                                           */
  9. /*                                                                          */
  10. /*              (C) Copyright 1987-96, Bit Bucket Software Co.              */
  11. /*                                                                          */
  12. /*                                                                          */
  13. /*                                                                          */
  14. /*           Windows NT Communications definitions for BinkleyTerm          */
  15. /*                                                                          */
  16. /*                                                                          */
  17. /*    For complete  details  of the licensing restrictions, please refer    */
  18. /*    to the License  agreement,  which  is published in its entirety in    */
  19. /*    the MAKEFILE and BT.C, and also contained in the file LICENSE.260.    */
  20. /*                                                                          */
  21. /*    USE  OF THIS FILE IS SUBJECT TO THE  RESTRICTIONS CONTAINED IN THE    */
  22. /*    BINKLEYTERM  LICENSING  AGREEMENT.  IF YOU DO NOT FIND THE TEXT OF    */
  23. /*    THIS  AGREEMENT IN ANY OF THE  AFOREMENTIONED FILES,  OR IF YOU DO    */
  24. /*    NOT HAVE THESE FILES,  YOU  SHOULD  IMMEDIATELY CONTACT BIT BUCKET    */
  25. /*    SOFTWARE CO.  AT ONE OF THE  ADDRESSES  LISTED BELOW.  IN NO EVENT    */
  26. /*    SHOULD YOU  PROCEED TO USE THIS FILE  WITHOUT HAVING  ACCEPTED THE    */
  27. /*    TERMS  OF  THE  BINKLEYTERM  LICENSING  AGREEMENT,  OR  SUCH OTHER    */
  28. /*    AGREEMENT AS YOU ARE ABLE TO REACH WITH BIT BUCKET SOFTWARE, CO.      */
  29. /*                                                                          */
  30. /*                                                                          */
  31. /* You can contact Bit Bucket Software Co. at any one of the following      */
  32. /* addresses:                                                               */
  33. /*                                                                          */
  34. /* Bit Bucket Software Co.        FidoNet  1:104/501, 1:343/491             */
  35. /* P.O. Box 460398                AlterNet 7:42/1491                        */
  36. /* Aurora, CO 80046               BBS-Net  86:2030/1                        */
  37. /*                                Internet f491.n343.z1.fidonet.org         */
  38. /*                                                                          */
  39. /* Please feel free to contact us at any time to share your comments about  */
  40. /* our software and/or licensing policies.                                  */
  41. /*                                                                          */
  42. /*--------------------------------------------------------------------------*/
  43.  
  44. #if !defined( BAUD_300 )
  45. /* Baud rate masks */
  46.  
  47. #define BAUD_300        300
  48. #define BAUD_1200        1200
  49. #define BAUD_2400        2400
  50. #define BAUD_4800        4800
  51. #define BAUD_9600        9600
  52. #define BAUD_19200        19200
  53. #define BAUD_38400        38400
  54. #define BAUD_57600        57600
  55. #define BAUD_115200        115200
  56.  
  57. #endif
  58.  
  59. #if !defined( _WINDOWS_ )
  60.  
  61. typedef unsigned long HANDLE ;
  62.  
  63. typedef struct _OVERLAPPED {
  64.     DWORD   Internal;
  65.     DWORD   InternalHigh;
  66.     DWORD   Offset;
  67.     DWORD   OffsetHigh;
  68.     HANDLE  hEvent;
  69. } OVERLAPPED, *LPOVERLAPPED;
  70.  
  71. #endif
  72.  
  73. typedef struct tagFOSSIL_PORTINFO
  74. {
  75.    ULONG       ulPortId ;
  76.    HANDLE      hDevice ;
  77.    OVERLAPPED  ov ;
  78.    
  79. } FOSSIL_PORTINFO, *PFOSSIL_PORTINFO ;
  80.  
  81. extern HANDLE hcModem ;
  82.  
  83. typedef unsigned short (*PFNU_II)( int, int ) ;
  84. typedef unsigned short (*PFNU_H)( HANDLE ) ;
  85. typedef short (*PFNS_HU)( HANDLE, ULONG ) ;
  86. typedef short (*PFNS_HB)( HANDLE, byte ) ;
  87. typedef void (*PFNV_H)( HANDLE ) ;
  88. typedef int (*PFNI_H)( HANDLE ) ;
  89. typedef int (*PFNI_HU)( HANDLE, ULONG ) ;
  90. typedef int (*PFNI_I)( int ) ;
  91. typedef void (*PFNV_HI)( HANDLE, int ) ;
  92. typedef void (*PFNV_HU)( HANDLE, ULONG ) ;
  93. typedef void (*PFNV_HPVUS)(HANDLE, void *, USHORT, short) ;
  94. typedef short (*PFNS_H)( HANDLE ) ;
  95.  
  96. extern PFNU_II    Cominit ;
  97. extern PFNS_HU    ComSetParms ;
  98. extern PFNV_H     ComDeInit ;
  99. extern PFNS_H     ComCarrier ;
  100. extern PFNS_H     ComInCount ;
  101. extern PFNS_H     ComOutCount ;
  102. extern PFNS_H     ComOutSpace ;
  103. extern PFNV_H     ComDTROff ;
  104. extern PFNV_H     ComDTROn ;
  105. extern PFNV_H     ComTXPurge ;
  106. extern PFNV_H     ComRXPurge ;
  107. extern PFNV_H     ComXONEnable ;
  108. extern PFNV_H     ComXONDisable ;
  109. extern PFNS_HB    ComPutc ;
  110. extern PFNS_HB    ComBufferByte ;
  111. extern PFNV_HU    ComTxWait ;
  112. extern PFNI_HU    ComRxWait ;
  113. extern PFNU_H     ComGetc ;
  114. extern PFNS_H     ComPeek ;
  115. extern PFNV_HI    ComBreak ;
  116. extern PFNV_HPVUS ComWrite ;
  117. extern PFNI_H     ComGetFH ;
  118. extern PFNI_H     ComPause ;
  119. extern PFNI_H     ComResume ;
  120. extern PFNI_I     com_getc ;
  121.  
  122. extern void ComSelect( int ) ;
  123. extern short KBHit (void);
  124. extern short GetKBKey (void);
  125.  
  126. unsigned short stdCominit (int, int);
  127. extern short stdComSetParms (HANDLE, ULONG);
  128. extern void stdComDeInit (HANDLE);
  129. extern short stdComCarrier (HANDLE);
  130. extern short stdComInCount (HANDLE);
  131. extern short stdComOutCount (HANDLE);
  132. extern short stdComOutSpace (HANDLE);
  133. extern void stdComDTROff (HANDLE);
  134. extern void stdComDTROn (HANDLE);
  135. extern void stdComTXPurge (HANDLE);
  136. extern void stdComRXPurge (HANDLE);
  137. extern void stdComXONEnable (HANDLE);
  138. extern void stdComXONDisable (HANDLE);
  139. extern short stdComPutc (HANDLE, byte);
  140. extern short stdComBufferByte (HANDLE, byte);
  141. extern void stdComTxWait (HANDLE, ULONG);
  142. extern int stdComRxWait (HANDLE, ULONG);
  143. extern unsigned short stdComGetc (HANDLE);
  144. extern short stdComPeek (HANDLE);
  145. extern void stdComBreak (HANDLE, int);
  146. extern void stdComWrite (HANDLE, void *, USHORT, short);
  147. extern int stdComGetFH (HANDLE);
  148. extern int stdComPause (HANDLE);
  149. extern int stdComResume (HANDLE);
  150. extern int stdcom_getc( int ) ;
  151.  
  152. unsigned short wfCominit (int, int);
  153. extern short wfComSetParms (HANDLE, ULONG);
  154. extern void wfComDeInit (HANDLE);
  155. extern short wfComCarrier (HANDLE);
  156. extern short wfComInCount (HANDLE);
  157. extern short wfComOutCount (HANDLE);
  158. extern short wfComOutSpace (HANDLE);
  159. extern void wfComDTROff (HANDLE);
  160. extern void wfComDTROn (HANDLE);
  161. extern void wfComTXPurge (HANDLE);
  162. extern void wfComRXPurge (HANDLE);
  163. extern void wfComXONEnable (HANDLE);
  164. extern void wfComXONDisable (HANDLE);
  165. extern short wfComPutc (HANDLE, byte);
  166. extern short wfComBufferByte (HANDLE, byte);
  167. extern void wfComTxWait (HANDLE, ULONG);
  168. extern int wfComRxWait (HANDLE, ULONG);
  169. extern unsigned short wfComGetc (HANDLE);
  170. extern short wfComPeek (HANDLE);
  171. extern void wfComBreak (HANDLE, int);
  172. extern void wfComWrite (HANDLE, void *, USHORT, short);
  173. extern int wfComGetFH (HANDLE);
  174. extern int wfComPause (HANDLE);
  175. extern int wfComResume (HANDLE);
  176. extern int wfcom_getc( int ) ;
  177.  
  178. /* translate binkley fossil comm stuff to NT_ASYNC.C calls */
  179.  
  180. /*-----------------------------------------------*/
  181. /* Service 0: SET BAUD(etc)                      */
  182. /*-----------------------------------------------*/
  183.  
  184. #define MDM_ENABLE(b)        (ComSetParms (hcModem, b))
  185.  
  186. /*-----------------------------------------------*/
  187. /* Service 1: SEND CHAR (wait)                   */
  188. /*-----------------------------------------------*/
  189.  
  190. #define SENDBYTE(c)            (ComPutc (hcModem, c))
  191.  
  192. /*-----------------------------------------------*/
  193. /* Service 2: GET CHAR (wait)                    */
  194. /*-----------------------------------------------*/
  195.  
  196. #define MODEM_IN()            (ComGetc (hcModem))
  197.  
  198. /*-----------------------------------------------*/
  199. /* Service 3: GET STATUS                         */
  200. /*-----------------------------------------------*/
  201.  
  202. #define CARRIER                (ComCarrier (hcModem))
  203. #define CHAR_AVAIL()        (ComInCount (hcModem))
  204. #define OUT_EMPTY()            (ComOutCount (hcModem) == 0)
  205. #define OUT_FULL()            (ComOutSpace (hcModem) == 0)
  206.  
  207. /*-----------------------------------------------*/
  208. /* Service 4: INIT/INSTALL                       */
  209. /*-----------------------------------------------*/
  210.  
  211. /*-----------------------------------------------*/
  212. /* Service 5: UNINSTALL                          */
  213. /*-----------------------------------------------*/
  214.  
  215. #define MDM_DISABLE()        (ComDeInit (hcModem))
  216.  
  217. /*-----------------------------------------------*/
  218. /* Service 6: SET DTR                            */
  219. /*-----------------------------------------------*/
  220.  
  221. #define LOWER_DTR()            (ComDTROff (hcModem))
  222. #define RAISE_DTR()            (ComDTROn (hcModem))
  223.  
  224. /*-----------------------------------------------*/
  225. /* Service 7: GET TIMER TICK PARMS               */
  226. /*-----------------------------------------------*/
  227.  
  228. /*-----------------------------------------------*/
  229. /* Service 8: FLUSH OUTBOUND RING-BUFFER         */
  230. /*-----------------------------------------------*/
  231.  
  232. #define UNBUFFER_BYTES()    (ComTxWait (hcModem, 1L))
  233.  
  234. /*-----------------------------------------------*/
  235. /* Service 9: NUKE OUTBOUND RING-BUFFER          */
  236. /*-----------------------------------------------*/
  237.  
  238. #define CLEAR_OUTBOUND()    (ComTXPurge (hcModem))
  239.  
  240. /*-----------------------------------------------*/
  241. /* Service a: NUKE INBOUND RING-BUFFER           */
  242. /*-----------------------------------------------*/
  243.  
  244. #define CLEAR_INBOUND()        (ComRXPurge (hcModem))
  245.  
  246. /*-----------------------------------------------*/
  247. /* Service b: SEND CHAR (no wait)                */
  248. /*-----------------------------------------------*/
  249.  
  250. #define BUFFER_BYTE(c)        (ComBufferByte (hcModem, c))
  251.  
  252. /*-----------------------------------------------*/
  253. /* Service c: GET CHAR (nondestructive, no wait) */
  254. /*-----------------------------------------------*/
  255.  
  256. #define PEEKBYTE()            (ComPeek (hcModem))
  257.  
  258. /*-----------------------------------------------*/
  259. /* Service d: GET KEYBOARD STATUS                */
  260. /*-----------------------------------------------*/
  261.  
  262. #define KEYPRESS()            (KBHit ())
  263.  
  264. /*-----------------------------------------------*/
  265. /* Service e: GET KEYBOARD CHARACTER (wait)      */
  266. /*-----------------------------------------------*/
  267.  
  268. #define READKB()            (GetKBKey ())
  269. #define FOSSIL_CHAR()        (GetKBKey ())
  270.  
  271. /*-----------------------------------------------*/
  272. /* Service f: SET/GET FLOW CONTROL STATUS        */
  273. /*-----------------------------------------------*/
  274.  
  275. #define XON_ENABLE()        (ComXONEnable (hcModem))
  276. #define IN_XON_ENABLE()
  277. #define XON_DISABLE()        (ComXONDisable (hcModem))
  278. #define IN_XON_DISABLE()
  279.  
  280. /*-----------------------------------------------*/
  281. /* Service 10: SET/GET CTL-BREAK CONTROLS        */
  282. /*             Note that the "break" here refers */
  283. /*             to ^C and ^K rather than the      */
  284. /*             tradition modem BREAK.            */
  285. /*-----------------------------------------------*/
  286.  
  287. #define _BRK_ENABLE()
  288. #define _BRK_DISABLE()
  289.  
  290. /*-----------------------------------------------*/
  291. /* Service 11: SET LOCAL VIDEO CURSOR POSITION   */
  292. /*-----------------------------------------------*/
  293.  
  294. /*-----------------------------------------------*/
  295. /* Service 12: GET LOCAL VIDEO CURSOR POSITION   */
  296. /*-----------------------------------------------*/
  297.  
  298. /*-----------------------------------------------*/
  299. /* Service 13: WRITE LOCAL ANSI CHARACTER        */
  300. /*-----------------------------------------------*/
  301.  
  302. #define WRITE_ANSI(c)        (putchar (c))
  303.  
  304. /*-----------------------------------------------*/
  305. /* Service 14: WATCHDOG on/off                   */
  306. /*-----------------------------------------------*/
  307.  
  308. #define FOSSIL_WATCHDOG(x)
  309.  
  310. /*-----------------------------------------------*/
  311. /* Service 18: Write buffer, no wait             */
  312. /*-----------------------------------------------*/
  313.  
  314. #define SENDCHARS(buf, size, carcheck)    (ComWrite (hcModem, buf, (USHORT)size, (short)carcheck))
  315.  
  316. /*-----------------------------------------------*/
  317. /* Service 1a: Break on/off                      */
  318. /*-----------------------------------------------*/
  319.  
  320. #define do_break(on)        (ComBreak (hcModem, on))
  321.  
  322. #define hfComHandle            (ComGetFH (hcModem))
  323.  
  324. /* END OF FILE: com_nt.h */
  325.  
  326.